home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Forever 4
/
Atari Forever 4.zip
/
Atari Forever 4.iso
/
PD_THEMA
/
CLI
/
COMMAND.141
/
COMMAND.TXT
< prev
Wrap
Text File
|
1998-03-14
|
25KB
|
751 lines
Beschreibung zu COMMAND.PRG (V1.04)
-----------------------------------
Allgemeine Hinweise
-------------------
die Eingabe eines Befehls kann mit Hilfe der Cursortasten, der DELETE-
Taste, der ESC-Taste und der BACKSPACE-Taste korrigiert werden!
Ab Version 1.04 kann mit 'CTRL' '<-' zum Anfang der Eingabe gesprungen
werden, analog funktioniert 'CTRL' '->', nur gehts hier ans Zeilenende.
Alle Befehle müßen kleingeschrieben werden. Es kann nicht dafür garantiert
werden, daß alle Eingabefehler ohne größere Verluste von Sourcefiles o.ä.
abgefangen werden (selber probieren).
Prinzipiell wird immer von der Directory ausgegangen, in der man sich ge-
rade befindet. Bezugnehmen auf andere Directories bzw. Laufwerke kann man
eigentlich nur mit 'cp' und 'dir'.
Allgemeine Befehle
------------------
Befehl: Beschreibung:
------- -------------
mkdir <dirname> Es wird ein neuer Ordner erzeugt.
Bsp.: mkdir neu_ord
erzeugt den Ordner 'neu_ord'.
rmdir <dirname> Löscht einen leeren (!) Ordner.
Bsp.: rmdir quatsch
löscht den Ordner 'quatsch'.
rm <filename(n)> Löschen von Files.
Bsp.: rm xy.dat
löscht den File 'xy.dat'.
Bsp.: rm *.prg
löscht alle Files der Gattung '.prg'.
Bsp.: rm Afile Bfile
löscht 'Afile' und 'Bfile'.
Bsp.: rm c:Cfile
löscht auf Laufwerk 'C' 'Cfile'
cp <fileA> <fileB> Kopieren von Files.
Bsp.: cp Afile Bfile
kopiert 'Afile' nach 'Bfile'
Bsp.: cp *.prg c:*
kopiert alle '.prg'-Files auf Laufwerk 'C'
unter gleichem Namen.
Da es mit diesem Befehl immer wieder Probleme
gab, ist ein gesundes Maß an Vorsicht durch-
aus angebracht!
mv <altname> <neuname> Umbenennen von einem File.
Bsp. mv alt.dat neu.dat
aus dem Filenamen 'alt.dat' wird 'neu.dat'.
cmp <fileA> <fileB> Vergleich zweier Files.
Bsp.: cmp erster zweiter
vergleicht die beiden Files 'erster' und
'zweiter'. Unterscheiden sich die beiden Files,
wird eine entsprechende Meldung ausgegeben.
Sind die beiden Files gleich, wird nichts
zurückgemeldet!
compress <file> Komprimiert einen ASCII-File (!). Der Ausgabe-
file besitzt die Extension '.CPR'.
expand <file> Expandiert einen File, der durch 'compress'
komprimiert worden ist. Extension des Ausgabe-
files ist '.EXP'.
more <filename(n)> Ausgeben der Fileinhalte auf Screen.
Bsp.: more info.dat
gibt den File 'info.dat' aus.
Ein Betätigen von '^Z' hat den Abbruch
der Auflistung zur Folge.
Ein analoges Verhalten findet sich bei 'od'.
Ein Drücken von RETURN nach '[MORE]' ver-
ursacht ein zeilenweises Weitergehen, jede
andere Taste, außer '^Z', ein seitenweises.
Wird "während" der Zeilenausgabe '^C' ge-
drückt, erfolgt ein sofortiges Verlassen
des Kommandointerpreters!
head <filename(n)> Ausgeben der ersten fünf Zeilen eines Files.
Bsp.: head info.dat
gibt die ersten fünf Zeilen von 'info.dat'
aus.
od <filename(n)> Ausgeben des Hexdumps eines Files.
Bsp.: od dump.dat
der File 'dump.dat' wird in hexadezimaler
Form ausgegeben.
string <file> <string> Suchen nach einem String in einem File.
Bsp.: string *.* Suchstring
alle Files im aktuellen Ordner werden nach
dem String 'Suchstring' durchsucht.
Bei einem Auffinden des Strings erfolgt eine
Meldung.
crypt <keyA> <keyB> <fileA> <fileB>
Ver-/Entschlüsseln von Dateien. <keyA/B> sind
Zahlen, die zum Verschlüsseln und zum
Entschlüsseln benötigt werden. Ein File kann
nur durch die Zahlen wieder entschlüsselt
werden, die auch zum Verschlüsseln benutzt
worden sind! <fileA> ist der Quellfile,
<fileB> der Zielfile.
Wie sicher die Verschlüsselung ist, mag jeder
für sich selbst entscheiden. Die beiden
Schlüssel sind auf jeden Fall vom Typ 'long',
dadurch ergeben sich schon eine große Zahl
von Verschlüsselungsmöglichkeiten. Es können
übrigens auch negative Zahlen benutzt werden!
ACHTUNG! Die Verschlüsselung erfolgt ab V1.02
in etwas abgeänderter Form. Man kann deshalb
alte verschlüsselte Files nicht mehr mit
diesem Befehl entschlüsseln und umgekehrt.
lp <filename(n)> Ausgeben von Files auf den Drucker.
Bsp. lp druck.dat
gibt den File 'druck.dat' auf den Drucker
aus (Centronics-Schnittstelle).
setlp <wert1> .. <wertN> Diese Steuercodes werden an den Drucker vor
dem Start des Ausdrucks geschickt. Default
ist das Senden von keinen Steuerzeichen.
Soll ein vorhergehender Steuercode ungültig
gemacht werden, muß man einfach 'setlp -1'
eingeben.
<wert1> .. <wertN> bezeichnet Dezimalzahlen.
Bsp 1:
setlp 27 48
setzt einen NEC-Printer auf 8 lpi.
resetlp <wert1> .. <wertN> Analog zu 'setlp', nur wird dieser Steuercode
nach Abschluß des Druckvorgangs an den Drucker
geschickt.
rstab Ist die TAB-Expandierung eingeschaltet
(default), sendet der Befehl 'lp' für
jedes TAB-Zeichen die entsprechende An-
zahl BLANKS, andernfalls das TAB-Zeichen.
Dieser Befehl dient zum Ein-/ Ausschalten
dieser Option.
settab <wert> Einstellen des Tabulators für Ausdrucke.
Defaultmäßig ist 8 eingestellt. <wert>
darf nicht unter 2 liegen!
cd <directory> Wechseln eines Ordners
Bsp.: cd bingo\bingo1
wechselt zum Subdirectory 'bingo\bingo1'
Bsp.: cd c:ordner1
wechselt zum Subdirectory 'ordner1' auf
Laufwerk 'C'.
pwd Zeigt den aktuellen Directorypfad auf
dir <file> Aufzeigen der Files innerhalb eines Ordners
Bsp.: dir
auflisten aller Files.
Bsp.: dir *.ttp
nur '.ttp'-Files werden angezeigt.
ls <file> Kurzausgabe des Directoryinhalts
<a..z>: Neusetzen des aktuellen Laufwerks
Bsp.: c:
Laufwerk 'C' wird zum aktuellen Laufwerk.
defkey <1..20> <string> Belegt Funktionstaste mit einem String, der
bei drücken der Taste ausgeführt wird.
Bsp.: defkey 11 time
ein Drücken von <SHIFT> <F1> zeigt nun immer
an, was die Stunde geschlagen hat.
keys Gibt die Funktionstastenbelegung aus.
time <hh:mm> Ohne Argumentangabe wird die Uhrzeit ausge-
geben, sonst erfolgt ein setzen der Uhrzeit.
Bsp.: time 1:8
setzt die Uhr auf 1 Uhr 8 Minuten.
date <dd.mm.yy> Ohne Argumentangabe erfolgt Ausgabe des
Datums, sonst ein setzen des Datums.
Bsp.: date
es wird das Datum ausgegeben.
echo <string> Ausgabe des angegebenen Strings auf Screen.
Bsp.: echo Hallo Welt!
es wird 'Hallo Welt!' ausgegeben. Sinnvoll
ist dieser Befehl in Batchfiles.
wc <fileA> <fileB> ... Zählt in den Files die vorkommenden Zeilen,
Zahlen und Zeichen.
find <file> Sucht im 'kompletten' Filesystem nach dem an-
gegebenen File. Wird dieser gefunden, erfolgt
eine Ausgabe mit der kompletten Pfadangabe.
df Ausgabe des freien Speicherplatzes auf dem
aktuellen Laufwerk.
device Gibt die angeschlossenen Laufwerke an.
wait Wartet auf Drücken einer Taste. Dieser Befehl
ist manchmal in Batchfiles sinnvoll, um
das Abarbeiten anzuhalten.
lock Dieser Befehl dient zum Sperren des Computers.
Nach Eingabe von 'lock' wird man aufgefordert
zweimal ein Password einzugeben. Der Rechner
kann dann erst nach erneuter Eingabe dieses
Wortes weiterbenutzt werden. Dieser Schutz
kann natürlich durch Betätigung von RESET
bzw. der POWER-Taste 'geknackt' werden!
exit Verlassen von COMMAND.PRG. Durch ^C wird das
gleiche erreicht.
cls Löschen des Bildschirms
inverse Invertiert Bildschirmdarstellung
srhist Schaltet Historyeintragungen ein/aus
flags Zeigt Stellung diverser Flags
free Gibt verfügbaren Speicherplatz aus
mouseon Einschalten des Mauszeigers (wozu auch immer)
mouseoff Ausschalten des Mauszeigers
crson Einschalten des Cursors
crsoff Ausschalten des Cursors
help Gibt eine Kommandoliste aus
bell Einmal Klingeln
lfcr <fileA> <fileB> Umwandeln eines ASCII-Files (fileA), wie er
von MICROEMACS erzeugt wird, in einen File,
wie er von anderen Editoren gebraucht wird
(fileB).
Wird wohl nicht allzuhäufig benutzt werden,
ich war aber einfach zu faul, den Befehl
wieder rauszuschmeißen!
<integerzahl> Darstellung einer Integerzahl in hexadezimaler
und oktaler Schreibweise.
Bsp.: 22
Ausgabe dieser Zahl hexadezimal und oktal.
$<hexzahl> Darstellung dieser Zahl dezimal und oktal.
\<oktalzahl> Darstellung dieser Zahl hexadezimal und
dezimal.
COMMAND.PRG besitzt die Möglichkeit, andere Programme aufrufen zu können. Dazu
muß lediglich der Filenamen und ggf. die erforderlichen Argumente eingegeben
werden. Ist dieses Programm (z.B. Compiler,Editor...) mit der Abarbeitung
fertig, wird automatisch zu COMMAND.PRG zurückgekehrt.
ALIAS-Einrichtung
-----------------
Der Kommandointerpreter bietet dem Benutzer die Möglichkeit, bestimmte Befehle
umzubenennen. Wird zum Beispiel öfters ein bestimmtes Programm aufgerufen,
kann dieser Aufruf umbenannt werden. Sei das Programm 'xcompiler.prg' immer
wieder aufzurufen, kann dieses Kommando z.B. in 'cc' umbenannt werden.
Wird ein Editor öfters zum editieren eines bestimmten Files aufgerufen, kann
der normale Aufruf 'editor.prg file.c' einfach in einen anderen kürzeren,
z.B. 'edi', umbenannt werden.
Sämtliche Umbenennungen können im File 'alias.dat' abgelegt werden. Dieser
File wird zum Programmbeginn von COMMAND.PRG eingelesen (soweit vorhanden),
die alternativen Kommandonamen können also sofort genutzt werden und müssen
nicht zu jeder Sitzung neu eingegeben werden.
alias Aufzeigen aller aktuell gültigen Umbenennung-
en.
getalias Einlesen des Files 'alias.dat'.
savealias Abspeichern der gültigen Umbenennungen in
'alias.dat'.
newalias <neu> <alt> Umbenennen von 'alt' in 'neu'.
Bsp. newalias cc mmcc.ttp
das alte Kommando 'mmcc.ttp' kann nun auch
durch 'cc' aufgerufen werden.
delalias <name> Löschen eines Alias-Eintrages (<name>).
History-Einrichtung
-------------------
Ein weiteres Bonbon des Interpreters ist die Möglichkeit, bereits eingegebene
Befehle auf einfache Weise erneut aufzurufen. Dies ist allerdings auf die
letzten zwanzig Kommandos beschränkt. UNIX-Kennern dürfte diese Einrichtung
und ihre Vorzüge wohl hinlänglich bekannt sein.
Ein einfaches Beispiel soll die praktische Anwendung dieser Möglichkeit auf-
zeigen. Zum Erstellen eines Programms in C, PASCAL u.s.w. sind immer die
gleichen Schritte nötig: Editieren->Compilieren->Linken->Probelauf. Meist
erfolgt zwischen Compilieren und Linken noch eine Kurzvisite beim Editor,
weil halt doch noch ein Syntaxfehler drin ist.
Die Kommandos seien ihre Bedeutung:
folgende:
77>ed bsp.pas Aufruf des Editors zum Editieren von bsp.pas
78>pas bsp.pas Aufruf des Compilers zur Objektfilerzeugung
Ist jetzt ein Fehler aufgetreten, muß zum Editieren zurückgegangen werden.
Also
79>ed bsp.pas
eingeben u.s.w.
Durch die Historyeinrichtung reicht es, wenn der Benutzer einfach '!77'
eingibt, es wird dann das Kommando 77 ausgeführt. '77>' stellt übrigens die
Aufforderung des Interpreters dar, Kommando 77 einzugeben. Es kann aber
nicht nur über Kommandonummern auf zurückliegende Eingaben Bezug genommen
werden, die Eingabe '!e' hätte auch zum Wiederaufruf von Kommando 77 ge-
führt, d.h. es wird nach dem letzten Kommando gesucht, daß mit 'e' beginnt und
dieses dann ausgeführt. Diese Eingabe von Anfangsbuchstaben ist nicht auf die
Länge 1 begrenzt! Hat ein Benutzer kürzlich einen Kopierbefehl (cp A B), einen
Vergleichsbefehl (cmp x y) und einen Befehl zum Wechseln des Ordners (cd \D)
gegeben, kann durch Eingabe zweier Zeichen immer eindeutig auf eines dieser
Kommandos Bezug genommen werden (z.B. '!cp' für den Kopierbefehl).
Wohlgemerkt, die Benutzung von History ist auf die letzten fünfzig Eingaben
beschränkt!.
Ab Version 1.01 bietet die Historyeinrichtung weitere Möglichkeiten. Alte
Befehle können durch Benutzung der CURSOR-UP-Taste angewählt werden. Ein
Vorwärtsblättern ist durch CURSOR-DOWN gegeben. Die Befehle können editiert
werden und kommen erst durch drücken von RETURN zur Ausführung!
h Ausgabe der letzten fünfzig Kommandos.
!<nr> Wiederaufruf des Kommandos mit der Nummer
<nr>.
!<string> Wiederaufruf des Kommandos, daß mit dem
angegebenen <string> beginnt.
!! Wiederaufruf des letzten Kommandos.
Batch-Processing
----------------
Kommen wir nun zur letzten aber nicht unbedeutendsten Fähigkeit des Kommando-
Interpreters, dem Abarbeiten von Batchfiles.
Leider wird diese Möglichkeit auch auf Systemen, die dafür eingerichtet sind
selten genutzt. Lieber gibt ein Benutzer immer die gleiche Befehlsfolge ein,
als sich einen Batchfile, der diese Folge enthält, zu erstellen und diesen
dann einfach ablaufen zu lassen.
In einem Batchfile kann prinzipiell jedes der bis jetzt besprochenen Kommandos
stehen. Es gibt noch eine Palette weiterer Kommandos, die den Ablauf inner-
halb eines Batchfiles regeln (z.B. Sprungmarken).
Wird in einem Batchfile viel gesprungen, bzw. finden Schleifendurchläufe
statt, sollte der File in einer RAMDisk abgelegt und gestartet werden, daß
bringt einen ziemlichen Zeitgewinn und nützt die Floppy nicht ab.
batch <file> <arg0> ... <arg9> Aufruf des Batchfiles <file>. <arg0> bis
<arg9> entsprechen Strings. Innerhalb eines
Batchfiles können Platzhalter gesetzt werden
($0 bis $9). Diese werden durch die Strings
ersetzt. Dadurch wird erreicht, daß z.B. ein
Batchfile für Compilierung und Linken eines
Files mit unterschiedlichen Sourcefilenamen
aufgerufen werden kann!
@<file> <arg0> ... <arg9> entspricht 'batch'
restart Befehl innerhalb eines Batchfiles zum
Neustart des Files.
stop Stoppen eines Batchfiles.
?stop bedingtes Stoppen eines Batchfiles (der Be-
nutzer wird gefragt).
text Jedes Kommando innerhalb eines Batchfiles
soll vor Ausführung auf den Bildschirm aus-
gegeben werden (default-Einstellung).
notext Abschalten der Kommandoausgabe.
errorbreak BATCH-Kommandos im Falle eines Fehlers
abbrechen / nicht abbrechen (es wird hin-
und hergeschaltet).
lbl <marke> Sprungmarke in einem Batchfile. Es darf
kein weiterer Befehl in einer lbl-Zeile
stehen!
Bsp.: lbl LOOP
festlegen des Labels 'LOOP'
goto <marke> Sprung zur angegebenen Marke.
Bsp.: goto LOOP
würde zum oben angegeben Label springen.
exist <file> <label> ist <file> vorhanden wird zu <label> ge-
sprungen.
size0 <file> <label> ist <file> nicht da oder Größe gleich Null
wird zu <label> gesprungen.
;<Kommentar> Kommentarzeile, die überlesen wird.
';' kann an jeder beliebigen Stelle der
Eingabe stehen. Alle nachfolgenden
Zeichen werden ignoriert.
Bsp.: dir ; no comment
verhält sich wie 'dir'.
';' ermöglicht eine recht gute Doku-
mentierung von Batchfiles.
status Ausgabe einer Variablen, die zur Steuerung
innerhalb des Batchfiles benutzt wird.
Sie wird vor jedem Ablauf eines Batchfiles
auf Null gesetzt. Werden innerhalb des
Files andere Programme (z.B. Compiler) ge-
startet, so wird deren Rückgabewert in
'status' abgelegt. Ein fehlerhafter Compiler-
lauf kann also zum Sprung zu einer bestimmten
Marke genutzt werde. Der Benutzer muß aller-
dings die Rückgabewerte der Programme und
ihre Bedeutung kennen. Wird nur das Kommando
'status' gegeben, wird der Wert dieser
Variablen angezeigt. Damit kann man also
Programmrückgabewerte bestimmen.
<> <zahl> Ist 'status' ungleich einer bestimmten Zahl,
wird der Batchvorgang abgebrochen (z.B.
nach einem fehlerhaften Compiliervorgang).
Bsp.: <> 0
ist 'status' <> 0, dann brich ab.
< <zahl> Analog zu '<>' nur erfolgt hier der Abbruch,
wenn 'status' < <zahl>.
> <zahl> Analog, nur größer diesmal.
== <zahl> Diesmal Abbruch, wenn gleich <zahl>.
?status= <zahl> <label> Diese drei Befehle dienen zur Steuerung des
?status> <zahl> <label> Batchfiles, wenn bestimmte Ereignisse ein-
?status< <zahl> <label> getreten sind. Ist 'status' gleich, größer
oder kleiner einer bestimmten Zahl, soll ab
einem bestimmten Label innerhalb des Batch-
files weitergemacht werden.
Bsp.: ?status> 0 editor
ist 'status' größer Null springe zum Label
'editor'.
counter Auf die Variable 'status' kann der Benutzer
keinen direkten Einfluß nehmen. In vielen
Fällen, z.B. wenn Schleifendurchgänge ge-
braucht werden, ist jedoch ein kontrollier-
barerer Ablauf notwendig. Zu diesem Zweck gibt
es die Variable 'counter'. Ihre Belegung
und Verwendung unterliegt dem vollständigen
Einfluß durch den Benutzer.
Der Befehl 'counter' gibt den Wert dieser
Variablen wieder.
setcounter <zahl> Setzt 'counter' auf den Wert <zahl>.
Bsp.: setcounter 20
counter := 20;
inccounter erhöht 'counter' um eins.
deccounter erniedrigt 'counter' um eins
?counter= <zahl> <label> wenn 'counter' = <zahl> gehe zu <label>.
?counter< <zahl> <label> wenn 'counter' < <zahl> gehe zu <label>.
?counter> <zahl> <label> wenn 'counter' > <zahl> gehe zu <label>.
?counter# <zahl> <label> wenn 'counter' <> <zahl> gehe zu <label>.
counter+ <zahl> counter := counter + <zahl>
counter- <zahl> counter := counter - <zahl>
counter* <zahl> counter := counter * <zahl>
Es soll angemerkt werden, daß 'status' eine 32-Bit-Integer Zahl ist. Bei
'counter' handelt es sich um einen 16-Bit-Integerwert.
Tritt in einem Batchfile ein Syntaxfehler auf, wird die Abarbeitung abge-
brochen (nicht bei Benutung von 'errorbreak')!
Befindet sich im AUTO-Ordner die Batch-Datei 'batch.com', so wird diese von
'command.prg' während dem Programmstart ausgeführt. Damit hat man z.B. die
Möglichkeit, bestimmte Files auf eine RAMDisk zu kopieren oder Funktions-
tasten vorzubelegen.
Beispiele:
Bsp. 1:
;
; Batchfile zur Compilierung und zum Linken eines C-Files
;
cc $0.c ; Aufruf des Compilers
<> 0 ; Abbruch wenn Fehler aufgetreten
link $0.o -o $1 ; Linken des Objektfiles
<> 0 ; Abbruch wenn Fehler aufgetreten
rm $0.o ; Löschen des Objektfiles
Im vorliegenden Beispiel wird ein C-Sourcefile mit Hilfe eines Batchfiles
compiliert und gelinkt.
Die ersten drei Zeilen dienen lediglich der Dokumentierung (Kommentar-
zeilen). In Zeile 4 wird der C-Compiler aufgerufen. '$0' repräsentiert
den Namen des Sourcefiles (Eingabe ohne Extension!). Es wird davon aus-
gegangen, daß der Compiler im Falle eines korrekten Durchlaufs eine
Null zurückgibt. Andernfalls sorgt Zeile 5 für einen Abbruch der Batch-
Bearbeitung. Nach dem Compilieren soll der entstandene Objektfile gelinkt
werden. Dies wird durch die Anweisung in Zeile 6 bewerkstelligt.
'$0' ist wieder der Programmname, diesmal mit Extension '.o', $1 soll den
Namen des lauffähigen Programms darstellen (diesmal muß eine Extension
angegeben werden). Im Fehlerfall sorgt Zeile 7 für einen Abbruch der
Bearbeitung. Ist alles in Ordnung wird durch Zeile 8 noch der Objekt-
file gelöscht.
Angenommen der Batchfile heißt 'cc.com', so sorgt zum Beispiel das
Kommando '@cc test run.prg' für eine Compilierung des Files 'test.c'.
Der lauffähige File wird unter 'run.prg' abgelegt.
Man kann hier sehr gut die Vorteile der Platzhalter ($) erkennen.
Unterschiedliche C-Files können mit einem Batch-File bearbeitet werden.
Bsp. 2:
Dieses Beispiel ist für alle Benutzer des Assemblers aus dem Entwicklungs-
paket interessant. Es zeigt, wie man Batchfiles abbrechen kann, auch wenn
das aufgerufene Programm keine Fehlercodes zurückgibt.
size0 $0.s exit ; Sourcefile muß da sein
as68.ttp -l -u $0.s ; Assemblierung
size0 $0.o linker ; wenn kein '.o'-File vorhanden raus
link68.ttp [u] $0.68k = $0.o ; Linken
size0 $0.68k exit ; wenn kein '.68k'-File vorhanden raus
relmod.ttp $0.68k $0.$1 ; lauffähigen File erstellen
rm $0.68k *.o ; '.o' und '.68k' Files löschen
lbl exit
Dieser Batchfile arbeitet wieder mit zwei Argumenten ($0 und $1). $0 re-
präsentiert wieder den Filenamen (ohne Extension), $1 die Extension des
lauffähigen Files. Heißt der Batchfile 'as' könnte eine Assemblierung
z.B. so aussehen:
'@as test tos',
d.h. File 'test.s' soll in 'test.tos' resultieren.
Variablen
---------
Eine große Neuerung ab Version 1.02 stellt die Einführung von Variablen dar.
Der Benutzer hat nun die Möglichkeit, beliebige Variablen zu definieren und
einfache Rechnungen mit ihnen durchzuführen. Dies kann in Batch-Files zum
Aufbau von Schleifen benutzt werden.
Die Befehle im Einzelnen:
let <var>✓£ÄSüנõנä0¨`y9╱D ג⇦⇦ gij@ gαijG⇩`x88y999B⇨α`gijג τijG⇦⇧ijג⇩gπ#ππ°88y999⇩⇦ ij@τגIJ⇦'ijG⇩A◆╱@ג'Σ G⇦⇧ijג⇩d'ו ⇦gπ#ππ°88x88x88A⇦gαijG⇩`gα'ταijG⇩gijτijG⇧ijαgαijו╱D αx88A⇦gαijG⇩`gααgαijG⇩gijτijG⇧ijαgαijו╱D αx88A⇦gαijG⇩`gαgταijG⇩gijτijG⇧ijαgαijו╱D αx88A⇦gαijG⇩`gατταijG⇩gijτijG⇧ijαgαijו╱D αx88y999 @⇩gIJ gמG ה⇧αA ג⇩'ij@ 'חIJ `'ij Dτחג⇩B⇨אA D⇦ x88y999⇦⇦⇦⇧⇦ D αx88y999B⇨α`x88y9999⇧⇦gו'α'π#τij◆⇩@⇦#888y999 ⇦ @gו'α'π#ατא⇨אA D⇦'ij@'Σ ◆⇩@⇦#$888y999B⇨α`x8
if xy <> ab ende
wenn 'xy' ungleich 'ab', springe zu 'ende'
-- <var1> <var2> .. <varN> dekrementieren von Variablen um eins.
Bsp.: -- zaehler xy ab
dekrementiert die angegebenen Variablen um
eins
++ <var1> <var2> .. <varN> inkrementieren von Variablen um eins.
-= <varA> <var | zahl> erniedrigen von <varA> um <zahl | var >
Bsp.: -= ab 10
zieht von 'ab' 10 ab
+= <varA> <var | zahl> analog zu -=, nur erhöhen.
2* <var1> <var2> .. <varN> verdoppeln von Variablenwerten.
Bsp.: 2* zaehler
zaehler := 2 * zaehler
2/ <var1> <var2> .. <varN> halbieren von Variablenwerten.
*= <varA> <var | zahl> multiplizieren von <varA> mit <var | zahl>
Bsp.: *= ab xy
ab := ab * xy
/= <varA> <var | zahl> analog zu *=, nur Division.
print <var1> <var2> .. <varN> ausgeben der Variableninhalte.
clear alle Variablen auf Null setzen.
vardump Ausgabe aller Variablen mit Belegungen.
Die Werte der Variablen sind vom Typ 'long' (integer).
Neue Variablen können nicht nur durch den 'let'-Befehl eingeführt werden.
Jeder Bezug auf eine Variable, die noch nicht existiert, erzeugt einen
Variableneintrag und setzt den Wert auf Null!
Zum Schluß möchte ich noch auf die Anfälligkeit bezüglich Bomben eingehen.
Im normalen Betrieb ist das Programm (hoffentlich) absturzsicher. Es ist
allerdings möglich, die ach so beliebten Bomben auf den Bildschirm zu
zaubern. Wie das geht soll jeder selbst rausfinden.
Die eigentliche Stärke des Interpreters kommt bei der Benutzung einer Hard-
disk zum Vorschein, es läßt sich damit wesentlich effektiver arbeiten als
mit der Maus oder den diversen Shells, die so durch die Computerwelt
geistern. Nur absolute Mausfetischisten dürften auf die Vorzüge eines
solchen Kommandointerpreters verzichten wollen, schneller ist die Bedienung
des Rechners mit solchen Programmen auf jeden Fall.
Es gibt Programme, die sich mit diesem Interpreter, aus was für Gründen auch
immer, nicht vertragen. Eins davon ist (leider) der GFA-BASIC-Interpreter.
Der Kommando-Interpreter kann frei kopiert werden. Es bestehen keinerlei
Copyright-Ansprüche. Für Anregungen, Fehlermeldungen oder unbedingt notwendige
Erweiterungen bin ich immer dankbar. Diese können an folgende Adresse ge-
schickt werden:
Joachim Wolf
Hügelheimerstr. 15
7840 Müllheim / Baden
Da ich meistens nur am Wochende einige Zeit mit dem ATARI zubringe, möchte
ich darum bitten, daß keine Kopierwünsche o.ä. an mich herangetragen werden,
ich könnte sonst nur noch weniger Zeit mit der Suche nach Fehlern zubringen!